void main(){
  //函数也是对象的一种，可以通过变量进行存储和传递
  Function func=printHello;
  func();

  var list = [1,2,3,4];
  list.forEach(print);//将print函数作为对象传递给forEach，其内部会自动调用print
  var names=['w','e','b'];
  //函数作为实参时，不需要写小括号
  print(listTimes(names, times));
}

String times(str){
  return str*3;
}

//函数作为形参时，要指定函数返回值类型，并写小括号
List listTimes(List list,String f(str)){
  for(var index=0;index<list.length;index++){
    list[index]=f(list[index]);
  }
  return list;
}

void printHello(){
  print('hello');
}